import readline from 'readline';
import { exec } from 'child_process'
import { writeFile } from 'fs'
import { fileURLToPath } from 'url';
import { join, dirname } from 'path'

const currentFilePath = fileURLToPath(import.meta.url);
const currentDirectoryPath = dirname(currentFilePath);

// 有效页面数组
const VALID_PAGES = ['pageA', 'pageB', 'pageC']

// 保存每个页面的名称和路径，后面会用到
const r = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});
r.question("请输入排除在此次打包外的子应用名称：", (input) => {
  r.close()

  let pages
  if (input.trim() === 'no') {
    pages = []
  } else {

    //输入的格式为 pageA,pageB,pageC
    pages = input.split(',')

    // 判断输入的子应用是否存在
    const valid = pages.every(el => VALID_PAGES.includes(el))
    if (!valid) {
      console.error(`子应用不存在，请重新输入`)
      return
    }
  }

  // 生成文件
  const content = `export const pages = ${JSON.stringify(pages)}`;

  writeFile(join(currentDirectoryPath, 'channel.js'), content, (err) => {
    if (err) {
      console.error('写入文件出错：', err);
    } else {
      const command = `pnpm build`
      exec(command, (error, stdout, stderr) => {
        if (error) {
          console.error('打包出错：', error)
        } else {
          console.log('打包完成')
          console.log('输出：', stdout)
          console.error('错误：', stderr)
        }
      })
    }
  })

});

